[レポート] SBT について学ぶ「Accelerating multi-tenant development with the SaaS Builder Toolkit」に参加しました #SAS406
いわさです。
AWS re:Invent 2024 の「Accelerating multi-tenant development with the SaaS Builder Toolkit」という Breakout session に参加してきました。
SaaS Builder Toolkit (SBT) はマルチテナント SaaS アプリケーションの構築に利用出来る開発用のツールキットです。
現在はメンテナンスのされていない SaaS Boost の後継として SaaS on AWS 界隈で実は注目をあびています。
それもあってか SaaS セッションの中では、レベル 400 にも関わらずまずまずの埋まり具合でした。
セッションの概要
re:Invent 2024 公式サイトのセッション概要を Amazon Translate で翻訳した内容が以下となります。
SaaS Builder Toolkit(SBT)は、SaaS をマルチテナント環境の作成に使用できる一連のビルディングブロックに分解するビルド済みのツールセットを開発者に提供します。このセッションでは、このツールキットの流動的な部分を掘り下げて、コアコンポーネント、アーキテクチャ、拡張性モデルの内部動作を探ります。また、実際に動作するマルチテナントアプリケーションをゼロから作成した SBT の実例も見ていきます。さらに、コントロールプレーンの構築、テナントのオンボーディング、テナントの認証、階層化のサポート、テナントリソースのプロビジョニングなどのコアコンセプトに SBT がどのように対処するかについても説明します。
スピーカー
- Tod Golding, Senior Principal SA, AWS
こちらの方です。SaaS on AWS の動画やセッションではすっかりお馴染みです。
LEVEL
- 400
セッション内容
アーカイブ動画はこちら
SaaS Builder Toolkit の構成要素
まずは SaaS Builder Toolkit の役割を確認しました。
SaaS Builder Toolkit は開発ツールキットであり、単体で動作するものではありません。
コントロールプレーンスタックを提供し、アプリケーションプレーンをコントロールプレーンと連携して動作するように変更できます。
コントロールプレーンではテナント管理・メトリクス・認証などの共通機能を提供するものです。
SaaS Buildr Toolkit では主に以下の機能を提供します。
- テナント管理
- テナントの作成、更新、削除などのテナント管理機能を提供する
- テナントごとの状態管理やポリシー設定などが可能
- ユーザー管理
- システム管理者ユーザーの管理機能を提供する
- ユーザーの認証や権限管理などが可能
- メトリクスと分析
- SaaSアプリケーションの利用状況やパフォーマンスなどのメトリクスを収集・分析する機能を提供する
- 課金
- 課金や課金に関する機能を提供する
- 外部の課金サービスとの統合も可能
- イベント管理
- コントロールプレーンとアプリケーションプレーン間のイベントの送受信を管理する機能を提供する
- テナントのオンボーディングなどのイベントを処理する
一方で、アプリケーションプレーンの観点では以下の機能を提供します。
- ベースラインの環境構築
- VPC、クラスター、ゲートウェイなど、テナントを受け入れる前に必要な基本的なインフラストラクチャを構築する機能を提供する
- テナントのプロビジョニング
- 新しいテナントを環境に導入するための一連の手順を自動化する機能を提供する
- 各テナントに対して必要なリソース(名前空間、サービスアカウントなど)を作成する
- リファレンスアーキテクチャ
- EKSやサーバーレスなどのリファレンスアーキテクチャを提供する
- ユーザーはこれらのアーキテクチャを起点として、自身のアプリケーションプレーンを構築できる
- イベント処理
- コントロールプレーンからのイベント(テナントのオンボーディングなど)を受け取り、適切な処理を行う機能を提供する
- コントロールプレーンへの結果の通知も行う
CDK ベースで拡張性も高い
そして、SaaS Builder Toolkit は大前提として CDK に組み込んで使うものとなります。
Saas Builder Toolkit は独自のコンストラクトライブラリを提供しており、テナント管理・ユーザー管理など様々な機能を有しています。
SBT のコントロールプレーンやアプリケーションプレーンの各コンポーネントは、CDK コンストラクトとして実装されています。
さらにユーザーは、コントロールプレーンやアプリケーションプレーンの一部を置き換えたり、拡張したりすることもできます。
セッションの中ではコードベースで SaaS Builder Toolkit の使い方、および拡張方法についても解説されています。
拡張性の具体的な例として、例えばユーザーが独自のテナント管理サービスを導入したい場合などが挙げられており、その場合に SaaS Builder Toolkit テナント管理コンストラクトをどのように置き換えるのかが解説されていました。
同様に、アプリケーションプレーンの一部を独自に実装することも可能です。
求む、フィードバック
SaaS Builder Toolkit はコミュニティからのフィードバックベースで機能拡張を行う予定になっおり、フィードバックが非常に重要だと言及されていました。
SaaS Builder Toolkit を使い、気になった点をどんどんフィードバックしましょう。
さいごに
本日は SBT について学ぶ「Accelerating multi-tenant development with the SaaS Builder Toolkit」の参加レポートを紹介しました。
セッション内で、Saas Builder Toolkit はインストーラーやユーザーインターフェースが提供されるようなプロダクトではなく、あくまでもエディター上でアプリケーションに組み込むツールキットであること、完全な自動化を提供するものではないことが繰り返し述べられていました。
ユーザーが一部のカスタマイズを自分で行う必要があります。
また、CDK ベースで以前の SaaS Boost よりもかなり拡張性が高いですが、完全に自由に変更出来るというわけでもないのでその点も気をつけましょう。
SaaS Builder Toolkit の位置づけを認識し、正しく利用しましょう。